{"ast":null,"code":"import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"arrow\", \"children\", \"classes\", \"components\", \"componentsProps\", \"describeChild\", \"disableFocusListener\", \"disableHoverListener\", \"disableInteractive\", \"disableTouchListener\", \"enterDelay\", \"enterNextDelay\", \"enterTouchDelay\", \"followCursor\", \"id\", \"leaveDelay\", \"leaveTouchDelay\", \"onClose\", \"onOpen\", \"open\", \"placement\", \"PopperComponent\", \"PopperProps\", \"title\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, appendOwnerState } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport Popper from '../Popper';\nimport useEventCallback from '../utils/useEventCallback';\nimport useForkRef from '../utils/useForkRef';\nimport useId from '../utils/useId';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useControlled from '../utils/useControlled';\nimport tooltipClasses, { getTooltipUtilityClass } from './tooltipClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction round(value) {\n  return Math.round(value * 1e5) / 1e5;\n}\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    disableInteractive,\n    arrow,\n    touch,\n    placement\n  } = ownerState;\n  const slots = {\n    popper: ['popper', !disableInteractive && 'popperInteractive', arrow && 'popperArrow'],\n    tooltip: ['tooltip', arrow && 'tooltipArrow', touch && 'touch', `tooltipPlacement${capitalize(placement.split('-')[0])}`],\n    arrow: ['arrow']\n  };\n  return composeClasses(slots, getTooltipUtilityClass, classes);\n};\nconst TooltipPopper = styled(Popper, {\n  name: 'MuiTooltip',\n  slot: 'Popper',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.popper, !ownerState.disableInteractive && styles.popperInteractive, ownerState.arrow && styles.popperArrow, !ownerState.open && styles.popperClose];\n  }\n})(_ref2 => {\n  let {\n    theme,\n    ownerState,\n    open\n  } = _ref2;\n  return _extends({\n    zIndex: (theme.vars || theme).zIndex.tooltip,\n    pointerEvents: 'none'\n  }, !ownerState.disableInteractive && {\n    pointerEvents: 'auto'\n  }, !open && {\n    pointerEvents: 'none'\n  }, ownerState.arrow && {\n    [`&[data-popper-placement*=\"bottom\"] .${tooltipClasses.arrow}`]: {\n      top: 0,\n      marginTop: '-0.71em',\n      '&::before': {\n        transformOrigin: '0 100%'\n      }\n    },\n    [`&[data-popper-placement*=\"top\"] .${tooltipClasses.arrow}`]: {\n      bottom: 0,\n      marginBottom: '-0.71em',\n      '&::before': {\n        transformOrigin: '100% 0'\n      }\n    },\n    [`&[data-popper-placement*=\"right\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n      left: 0,\n      marginLeft: '-0.71em'\n    } : {\n      right: 0,\n      marginRight: '-0.71em'\n    }, {\n      height: '1em',\n      width: '0.71em',\n      '&::before': {\n        transformOrigin: '100% 100%'\n      }\n    }),\n    [`&[data-popper-placement*=\"left\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n      right: 0,\n      marginRight: '-0.71em'\n    } : {\n      left: 0,\n      marginLeft: '-0.71em'\n    }, {\n      height: '1em',\n      width: '0.71em',\n      '&::before': {\n        transformOrigin: '0 0'\n      }\n    })\n  });\n});\nconst TooltipTooltip = styled('div', {\n  name: 'MuiTooltip',\n  slot: 'Tooltip',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.tooltip, ownerState.touch && styles.touch, ownerState.arrow && styles.tooltipArrow, styles[`tooltipPlacement${capitalize(ownerState.placement.split('-')[0])}`]];\n  }\n})(_ref3 => {\n  let {\n    theme,\n    ownerState\n  } = _ref3;\n  return _extends({\n    backgroundColor: theme.vars ? theme.vars.palette.Tooltip.bg : alpha(theme.palette.grey[700], 0.92),\n    borderRadius: (theme.vars || theme).shape.borderRadius,\n    color: (theme.vars || theme).palette.common.white,\n    fontFamily: theme.typography.fontFamily,\n    padding: '4px 8px',\n    fontSize: theme.typography.pxToRem(11),\n    maxWidth: 300,\n    margin: 2,\n    wordWrap: 'break-word',\n    fontWeight: theme.typography.fontWeightMedium\n  }, ownerState.arrow && {\n    position: 'relative',\n    margin: 0\n  }, ownerState.touch && {\n    padding: '8px 16px',\n    fontSize: theme.typography.pxToRem(14),\n    lineHeight: `${round(16 / 14)}em`,\n    fontWeight: theme.typography.fontWeightRegular\n  }, {\n    [`.${tooltipClasses.popper}[data-popper-placement*=\"left\"] &`]: _extends({\n      transformOrigin: 'right center'\n    }, !ownerState.isRtl ? _extends({\n      marginRight: '14px'\n    }, ownerState.touch && {\n      marginRight: '24px'\n    }) : _extends({\n      marginLeft: '14px'\n    }, ownerState.touch && {\n      marginLeft: '24px'\n    })),\n    [`.${tooltipClasses.popper}[data-popper-placement*=\"right\"] &`]: _extends({\n      transformOrigin: 'left center'\n    }, !ownerState.isRtl ? _extends({\n      marginLeft: '14px'\n    }, ownerState.touch && {\n      marginLeft: '24px'\n    }) : _extends({\n      marginRight: '14px'\n    }, ownerState.touch && {\n      marginRight: '24px'\n    })),\n    [`.${tooltipClasses.popper}[data-popper-placement*=\"top\"] &`]: _extends({\n      transformOrigin: 'center bottom',\n      marginBottom: '14px'\n    }, ownerState.touch && {\n      marginBottom: '24px'\n    }),\n    [`.${tooltipClasses.popper}[data-popper-placement*=\"bottom\"] &`]: _extends({\n      transformOrigin: 'center top',\n      marginTop: '14px'\n    }, ownerState.touch && {\n      marginTop: '24px'\n    })\n  });\n});\nconst TooltipArrow = styled('span', {\n  name: 'MuiTooltip',\n  slot: 'Arrow',\n  overridesResolver: (props, styles) => styles.arrow\n})(_ref4 => {\n  let {\n    theme\n  } = _ref4;\n  return {\n    overflow: 'hidden',\n    position: 'absolute',\n    width: '1em',\n    height: '0.71em'\n    /* = width / sqrt(2) = (length of the hypotenuse) */,\n\n    boxSizing: 'border-box',\n    color: theme.vars ? theme.vars.palette.Tooltip.bg : alpha(theme.palette.grey[700], 0.9),\n    '&::before': {\n      content: '\"\"',\n      margin: 'auto',\n      display: 'block',\n      width: '100%',\n      height: '100%',\n      backgroundColor: 'currentColor',\n      transform: 'rotate(45deg)'\n    }\n  };\n});\nlet hystersisOpen = false;\nlet hystersisTimer = null;\nexport function testReset() {\n  hystersisOpen = false;\n  clearTimeout(hystersisTimer);\n}\nfunction composeEventHandler(handler, eventHandler) {\n  return event => {\n    if (eventHandler) {\n      eventHandler(event);\n    }\n    handler(event);\n  };\n} // TODO v6: Remove PopperComponent, PopperProps, TransitionComponent and TransitionProps.\n\nconst Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {\n  var _components$Popper, _ref, _components$Transitio, _components$Tooltip, _components$Arrow, _componentsProps$popp;\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiTooltip'\n  });\n  const {\n      arrow = false,\n      children,\n      components = {},\n      componentsProps = {},\n      describeChild = false,\n      disableFocusListener = false,\n      disableHoverListener = false,\n      disableInteractive: disableInteractiveProp = false,\n      disableTouchListener = false,\n      enterDelay = 100,\n      enterNextDelay = 0,\n      enterTouchDelay = 700,\n      followCursor = false,\n      id: idProp,\n      leaveDelay = 0,\n      leaveTouchDelay = 1500,\n      onClose,\n      onOpen,\n      open: openProp,\n      placement = 'bottom',\n      PopperComponent: PopperComponentProp,\n      PopperProps = {},\n      title,\n      TransitionComponent: TransitionComponentProp = Grow,\n      TransitionProps\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const theme = useTheme();\n  const isRtl = theme.direction === 'rtl';\n  const [childNode, setChildNode] = React.useState();\n  const [arrowRef, setArrowRef] = React.useState(null);\n  const ignoreNonTouchEvents = React.useRef(false);\n  const disableInteractive = disableInteractiveProp || followCursor;\n  const closeTimer = React.useRef();\n  const enterTimer = React.useRef();\n  const leaveTimer = React.useRef();\n  const touchTimer = React.useRef();\n  const [openState, setOpenState] = useControlled({\n    controlled: openProp,\n    default: false,\n    name: 'Tooltip',\n    state: 'open'\n  });\n  let open = openState;\n  if (process.env.NODE_ENV !== 'production') {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    const {\n      current: isControlled\n    } = React.useRef(openProp !== undefined); // eslint-disable-next-line react-hooks/rules-of-hooks\n\n    React.useEffect(() => {\n      if (childNode && childNode.disabled && !isControlled && title !== '' && childNode.tagName.toLowerCase() === 'button') {\n        console.error(['MUI: You are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', \"Tooltip needs to listen to the child element's events to display the title.\", '', 'Add a simple wrapper element, such as a `span`.'].join('\\n'));\n      }\n    }, [title, childNode, isControlled]);\n  }\n  const id = useId(idProp);\n  const prevUserSelect = React.useRef();\n  const stopTouchInteraction = React.useCallback(() => {\n    if (prevUserSelect.current !== undefined) {\n      document.body.style.WebkitUserSelect = prevUserSelect.current;\n      prevUserSelect.current = undefined;\n    }\n    clearTimeout(touchTimer.current);\n  }, []);\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(closeTimer.current);\n      clearTimeout(enterTimer.current);\n      clearTimeout(leaveTimer.current);\n      stopTouchInteraction();\n    };\n  }, [stopTouchInteraction]);\n  const handleOpen = event => {\n    clearTimeout(hystersisTimer);\n    hystersisOpen = true; // The mouseover event will trigger for every nested element in the tooltip.\n    // We can skip rerendering when the tooltip is already open.\n    // We are using the mouseover event instead of the mouseenter event to fix a hide/show issue.\n\n    setOpenState(true);\n    if (onOpen && !open) {\n      onOpen(event);\n    }\n  };\n  const handleClose = useEventCallback(\n  /**\n   * @param {React.SyntheticEvent | Event} event\n   */\n  event => {\n    clearTimeout(hystersisTimer);\n    hystersisTimer = setTimeout(() => {\n      hystersisOpen = false;\n    }, 800 + leaveDelay);\n    setOpenState(false);\n    if (onClose && open) {\n      onClose(event);\n    }\n    clearTimeout(closeTimer.current);\n    closeTimer.current = setTimeout(() => {\n      ignoreNonTouchEvents.current = false;\n    }, theme.transitions.duration.shortest);\n  });\n  const handleEnter = event => {\n    if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {\n      return;\n    } // Remove the title ahead of time.\n    // We don't want to wait for the next render commit.\n    // We would risk displaying two tooltips at the same time (native + this one).\n\n    if (childNode) {\n      childNode.removeAttribute('title');\n    }\n    clearTimeout(enterTimer.current);\n    clearTimeout(leaveTimer.current);\n    if (enterDelay || hystersisOpen && enterNextDelay) {\n      enterTimer.current = setTimeout(() => {\n        handleOpen(event);\n      }, hystersisOpen ? enterNextDelay : enterDelay);\n    } else {\n      handleOpen(event);\n    }\n  };\n  const handleLeave = event => {\n    clearTimeout(enterTimer.current);\n    clearTimeout(leaveTimer.current);\n    leaveTimer.current = setTimeout(() => {\n      handleClose(event);\n    }, leaveDelay);\n  };\n  const {\n    isFocusVisibleRef,\n    onBlur: handleBlurVisible,\n    onFocus: handleFocusVisible,\n    ref: focusVisibleRef\n  } = useIsFocusVisible(); // We don't necessarily care about the focusVisible state (which is safe to access via ref anyway).\n  // We just need to re-render the Tooltip if the focus-visible state changes.\n\n  const [, setChildIsFocusVisible] = React.useState(false);\n  const handleBlur = event => {\n    handleBlurVisible(event);\n    if (isFocusVisibleRef.current === false) {\n      setChildIsFocusVisible(false);\n      handleLeave(event);\n    }\n  };\n  const handleFocus = event => {\n    // Workaround for https://github.com/facebook/react/issues/7769\n    // The autoFocus of React might trigger the event before the componentDidMount.\n    // We need to account for this eventuality.\n    if (!childNode) {\n      setChildNode(event.currentTarget);\n    }\n    handleFocusVisible(event);\n    if (isFocusVisibleRef.current === true) {\n      setChildIsFocusVisible(true);\n      handleEnter(event);\n    }\n  };\n  const detectTouchStart = event => {\n    ignoreNonTouchEvents.current = true;\n    const childrenProps = children.props;\n    if (childrenProps.onTouchStart) {\n      childrenProps.onTouchStart(event);\n    }\n  };\n  const handleMouseOver = handleEnter;\n  const handleMouseLeave = handleLeave;\n  const handleTouchStart = event => {\n    detectTouchStart(event);\n    clearTimeout(leaveTimer.current);\n    clearTimeout(closeTimer.current);\n    stopTouchInteraction();\n    prevUserSelect.current = document.body.style.WebkitUserSelect; // Prevent iOS text selection on long-tap.\n\n    document.body.style.WebkitUserSelect = 'none';\n    touchTimer.current = setTimeout(() => {\n      document.body.style.WebkitUserSelect = prevUserSelect.current;\n      handleEnter(event);\n    }, enterTouchDelay);\n  };\n  const handleTouchEnd = event => {\n    if (children.props.onTouchEnd) {\n      children.props.onTouchEnd(event);\n    }\n    stopTouchInteraction();\n    clearTimeout(leaveTimer.current);\n    leaveTimer.current = setTimeout(() => {\n      handleClose(event);\n    }, leaveTouchDelay);\n  };\n  React.useEffect(() => {\n    if (!open) {\n      return undefined;\n    }\n    /**\n     * @param {KeyboardEvent} nativeEvent\n     */\n\n    function handleKeyDown(nativeEvent) {\n      // IE11, Edge (prior to using Bink?) use 'Esc'\n      if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n        handleClose(nativeEvent);\n      }\n    }\n    document.addEventListener('keydown', handleKeyDown);\n    return () => {\n      document.removeEventListener('keydown', handleKeyDown);\n    };\n  }, [handleClose, open]);\n  const handleRef = useForkRef(children.ref, focusVisibleRef, setChildNode, ref); // There is no point in displaying an empty tooltip.\n\n  if (typeof title !== 'number' && !title) {\n    open = false;\n  }\n  const positionRef = React.useRef({\n    x: 0,\n    y: 0\n  });\n  const popperRef = React.useRef();\n  const handleMouseMove = event => {\n    const childrenProps = children.props;\n    if (childrenProps.onMouseMove) {\n      childrenProps.onMouseMove(event);\n    }\n    positionRef.current = {\n      x: event.clientX,\n      y: event.clientY\n    };\n    if (popperRef.current) {\n      popperRef.current.update();\n    }\n  };\n  const nameOrDescProps = {};\n  const titleIsString = typeof title === 'string';\n  if (describeChild) {\n    nameOrDescProps.title = !open && titleIsString && !disableHoverListener ? title : null;\n    nameOrDescProps['aria-describedby'] = open ? id : null;\n  } else {\n    nameOrDescProps['aria-label'] = titleIsString ? title : null;\n    nameOrDescProps['aria-labelledby'] = open && !titleIsString ? id : null;\n  }\n  const childrenProps = _extends({}, nameOrDescProps, other, children.props, {\n    className: clsx(other.className, children.props.className),\n    onTouchStart: detectTouchStart,\n    ref: handleRef\n  }, followCursor ? {\n    onMouseMove: handleMouseMove\n  } : {});\n  if (process.env.NODE_ENV !== 'production') {\n    childrenProps['data-mui-internal-clone-element'] = true; // eslint-disable-next-line react-hooks/rules-of-hooks\n\n    React.useEffect(() => {\n      if (childNode && !childNode.getAttribute('data-mui-internal-clone-element')) {\n        console.error(['MUI: The `children` component of the Tooltip is not forwarding its props correctly.', 'Please make sure that props are spread on the same element that the ref is applied to.'].join('\\n'));\n      }\n    }, [childNode]);\n  }\n  const interactiveWrapperListeners = {};\n  if (!disableTouchListener) {\n    childrenProps.onTouchStart = handleTouchStart;\n    childrenProps.onTouchEnd = handleTouchEnd;\n  }\n  if (!disableHoverListener) {\n    childrenProps.onMouseOver = composeEventHandler(handleMouseOver, childrenProps.onMouseOver);\n    childrenProps.onMouseLeave = composeEventHandler(handleMouseLeave, childrenProps.onMouseLeave);\n    if (!disableInteractive) {\n      interactiveWrapperListeners.onMouseOver = handleMouseOver;\n      interactiveWrapperListeners.onMouseLeave = handleMouseLeave;\n    }\n  }\n  if (!disableFocusListener) {\n    childrenProps.onFocus = composeEventHandler(handleFocus, childrenProps.onFocus);\n    childrenProps.onBlur = composeEventHandler(handleBlur, childrenProps.onBlur);\n    if (!disableInteractive) {\n      interactiveWrapperListeners.onFocus = handleFocus;\n      interactiveWrapperListeners.onBlur = handleBlur;\n    }\n  }\n  if (process.env.NODE_ENV !== 'production') {\n    if (children.props.title) {\n      console.error(['MUI: You have provided a `title` prop to the child of <Tooltip />.', `Remove this title prop \\`${children.props.title}\\` or the Tooltip component.`].join('\\n'));\n    }\n  }\n  const popperOptions = React.useMemo(() => {\n    var _PopperProps$popperOp;\n    let tooltipModifiers = [{\n      name: 'arrow',\n      enabled: Boolean(arrowRef),\n      options: {\n        element: arrowRef,\n        padding: 4\n      }\n    }];\n    if ((_PopperProps$popperOp = PopperProps.popperOptions) != null && _PopperProps$popperOp.modifiers) {\n      tooltipModifiers = tooltipModifiers.concat(PopperProps.popperOptions.modifiers);\n    }\n    return _extends({}, PopperProps.popperOptions, {\n      modifiers: tooltipModifiers\n    });\n  }, [arrowRef, PopperProps]);\n  const ownerState = _extends({}, props, {\n    isRtl,\n    arrow,\n    disableInteractive,\n    placement,\n    PopperComponentProp,\n    touch: ignoreNonTouchEvents.current\n  });\n  const classes = useUtilityClasses(ownerState);\n  const PopperComponent = (_components$Popper = components.Popper) != null ? _components$Popper : TooltipPopper;\n  const TransitionComponent = (_ref = (_components$Transitio = components.Transition) != null ? _components$Transitio : TransitionComponentProp) != null ? _ref : Grow;\n  const TooltipComponent = (_components$Tooltip = components.Tooltip) != null ? _components$Tooltip : TooltipTooltip;\n  const ArrowComponent = (_components$Arrow = components.Arrow) != null ? _components$Arrow : TooltipArrow;\n  const popperProps = appendOwnerState(PopperComponent, _extends({}, PopperProps, componentsProps.popper), ownerState);\n  const transitionProps = appendOwnerState(TransitionComponent, _extends({}, TransitionProps, componentsProps.transition), ownerState);\n  const tooltipProps = appendOwnerState(TooltipComponent, _extends({}, componentsProps.tooltip), ownerState);\n  const tooltipArrowProps = appendOwnerState(ArrowComponent, _extends({}, componentsProps.arrow), ownerState);\n  return /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/React.cloneElement(children, childrenProps), /*#__PURE__*/_jsx(PopperComponent, _extends({\n      as: PopperComponentProp != null ? PopperComponentProp : Popper,\n      placement: placement,\n      anchorEl: followCursor ? {\n        getBoundingClientRect: () => ({\n          top: positionRef.current.y,\n          left: positionRef.current.x,\n          right: positionRef.current.x,\n          bottom: positionRef.current.y,\n          width: 0,\n          height: 0\n        })\n      } : childNode,\n      popperRef: popperRef,\n      open: childNode ? open : false,\n      id: id,\n      transition: true\n    }, interactiveWrapperListeners, popperProps, {\n      className: clsx(classes.popper, PopperProps == null ? void 0 : PopperProps.className, (_componentsProps$popp = componentsProps.popper) == null ? void 0 : _componentsProps$popp.className),\n      popperOptions: popperOptions,\n      children: _ref5 => {\n        let {\n          TransitionProps: TransitionPropsInner\n        } = _ref5;\n        var _componentsProps$tool, _componentsProps$arro;\n        return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n          timeout: theme.transitions.duration.shorter\n        }, TransitionPropsInner, transitionProps, {\n          children: /*#__PURE__*/_jsxs(TooltipComponent, _extends({}, tooltipProps, {\n            className: clsx(classes.tooltip, (_componentsProps$tool = componentsProps.tooltip) == null ? void 0 : _componentsProps$tool.className),\n            children: [title, arrow ? /*#__PURE__*/_jsx(ArrowComponent, _extends({}, tooltipArrowProps, {\n              className: clsx(classes.arrow, (_componentsProps$arro = componentsProps.arrow) == null ? void 0 : _componentsProps$arro.className),\n              ref: setArrowRef\n            })) : null]\n          }))\n        }));\n      }\n    }))]\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tooltip.propTypes\n/* remove-proptypes */ = {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, adds an arrow to the tooltip.\n   * @default false\n   */\n  arrow: PropTypes.bool,\n  /**\n   * Tooltip reference element.\n   */\n  children: elementAcceptingRef.isRequired,\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n  /**\n   * The components used for each slot inside the Tooltip.\n   * Either a string to use a HTML element or a component.\n   * @default {}\n   */\n  components: PropTypes.shape({\n    Arrow: PropTypes.elementType,\n    Popper: PropTypes.elementType,\n    Tooltip: PropTypes.elementType,\n    Transition: PropTypes.elementType\n  }),\n  /**\n   * The props used for each slot inside the Tooltip.\n   * Note that `componentsProps.popper` prop values win over `PopperProps`\n   * and `componentsProps.transition` prop values win over `TransitionProps` if both are applied.\n   * @default {}\n   */\n  componentsProps: PropTypes.shape({\n    arrow: PropTypes.object,\n    popper: PropTypes.object,\n    tooltip: PropTypes.object,\n    transition: PropTypes.object\n  }),\n  /**\n   * Set to `true` if the `title` acts as an accessible description.\n   * By default the `title` acts as an accessible label for the child.\n   * @default false\n   */\n  describeChild: PropTypes.bool,\n  /**\n   * Do not respond to focus-visible events.\n   * @default false\n   */\n  disableFocusListener: PropTypes.bool,\n  /**\n   * Do not respond to hover events.\n   * @default false\n   */\n  disableHoverListener: PropTypes.bool,\n  /**\n   * Makes a tooltip not interactive, i.e. it will close when the user\n   * hovers over the tooltip before the `leaveDelay` is expired.\n   * @default false\n   */\n  disableInteractive: PropTypes.bool,\n  /**\n   * Do not respond to long press touch events.\n   * @default false\n   */\n  disableTouchListener: PropTypes.bool,\n  /**\n   * The number of milliseconds to wait before showing the tooltip.\n   * This prop won't impact the enter touch delay (`enterTouchDelay`).\n   * @default 100\n   */\n  enterDelay: PropTypes.number,\n  /**\n   * The number of milliseconds to wait before showing the tooltip when one was already recently opened.\n   * @default 0\n   */\n  enterNextDelay: PropTypes.number,\n  /**\n   * The number of milliseconds a user must touch the element before showing the tooltip.\n   * @default 700\n   */\n  enterTouchDelay: PropTypes.number,\n  /**\n   * If `true`, the tooltip follow the cursor over the wrapped element.\n   * @default false\n   */\n  followCursor: PropTypes.bool,\n  /**\n   * This prop is used to help implement the accessibility logic.\n   * If you don't provide this prop. It falls back to a randomly generated id.\n   */\n  id: PropTypes.string,\n  /**\n   * The number of milliseconds to wait before hiding the tooltip.\n   * This prop won't impact the leave touch delay (`leaveTouchDelay`).\n   * @default 0\n   */\n  leaveDelay: PropTypes.number,\n  /**\n   * The number of milliseconds after the user stops touching an element before hiding the tooltip.\n   * @default 1500\n   */\n  leaveTouchDelay: PropTypes.number,\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {React.SyntheticEvent} event The event source of the callback.\n   */\n  onClose: PropTypes.func,\n  /**\n   * Callback fired when the component requests to be open.\n   *\n   * @param {React.SyntheticEvent} event The event source of the callback.\n   */\n  onOpen: PropTypes.func,\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n  /**\n   * Tooltip placement.\n   * @default 'bottom'\n   */\n  placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n  /**\n   * The component used for the popper.\n   * @default Popper\n   */\n  PopperComponent: PropTypes.elementType,\n  /**\n   * Props applied to the [`Popper`](/material-ui/api/popper/) element.\n   * @default {}\n   */\n  PopperProps: PropTypes.object,\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n  /**\n   * Tooltip title. Zero-length titles string, undefined, null and false are never displayed.\n   */\n  title: PropTypes.node,\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   * @default Grow\n   */\n  TransitionComponent: PropTypes.elementType,\n  /**\n   * Props applied to the transition element.\n   * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n   */\n  TransitionProps: PropTypes.object\n} : void 0;\nexport default Tooltip;","map":{"version":3,"names":["_objectWithoutPropertiesLoose","_extends","_excluded","React","PropTypes","clsx","elementAcceptingRef","unstable_composeClasses","composeClasses","appendOwnerState","alpha","styled","useTheme","useThemeProps","capitalize","Grow","Popper","useEventCallback","useForkRef","useId","useIsFocusVisible","useControlled","tooltipClasses","getTooltipUtilityClass","jsx","_jsx","jsxs","_jsxs","round","value","Math","useUtilityClasses","ownerState","classes","disableInteractive","arrow","touch","placement","slots","popper","tooltip","split","TooltipPopper","name","slot","overridesResolver","props","styles","popperInteractive","popperArrow","open","popperClose","theme","zIndex","vars","pointerEvents","top","marginTop","transformOrigin","bottom","marginBottom","isRtl","left","marginLeft","right","marginRight","height","width","TooltipTooltip","tooltipArrow","backgroundColor","palette","Tooltip","bg","grey","borderRadius","shape","color","common","white","fontFamily","typography","padding","fontSize","pxToRem","maxWidth","margin","wordWrap","fontWeight","fontWeightMedium","position","lineHeight","fontWeightRegular","TooltipArrow","overflow","boxSizing","content","display","transform","hystersisOpen","hystersisTimer","testReset","clearTimeout","composeEventHandler","handler","eventHandler","event","forwardRef","inProps","ref","_components$Popper","_ref","_components$Transitio","_components$Tooltip","_components$Arrow","_componentsProps$popp","children","components","componentsProps","describeChild","disableFocusListener","disableHoverListener","disableInteractiveProp","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","followCursor","id","idProp","leaveDelay","leaveTouchDelay","onClose","onOpen","openProp","PopperComponent","PopperComponentProp","PopperProps","title","TransitionComponent","TransitionComponentProp","TransitionProps","other","direction","childNode","setChildNode","useState","arrowRef","setArrowRef","ignoreNonTouchEvents","useRef","closeTimer","enterTimer","leaveTimer","touchTimer","openState","setOpenState","controlled","default","state","process","env","NODE_ENV","current","isControlled","undefined","useEffect","disabled","tagName","toLowerCase","console","error","join","prevUserSelect","stopTouchInteraction","useCallback","document","body","style","WebkitUserSelect","handleOpen","handleClose","setTimeout","transitions","duration","shortest","handleEnter","type","removeAttribute","handleLeave","isFocusVisibleRef","onBlur","handleBlurVisible","onFocus","handleFocusVisible","focusVisibleRef","setChildIsFocusVisible","handleBlur","handleFocus","currentTarget","detectTouchStart","childrenProps","onTouchStart","handleMouseOver","handleMouseLeave","handleTouchStart","handleTouchEnd","onTouchEnd","handleKeyDown","nativeEvent","key","addEventListener","removeEventListener","handleRef","positionRef","x","y","popperRef","handleMouseMove","onMouseMove","clientX","clientY","update","nameOrDescProps","titleIsString","className","getAttribute","interactiveWrapperListeners","onMouseOver","onMouseLeave","popperOptions","useMemo","_PopperProps$popperOp","tooltipModifiers","enabled","Boolean","options","element","modifiers","concat","Transition","TooltipComponent","ArrowComponent","Arrow","popperProps","transitionProps","transition","tooltipProps","tooltipArrowProps","Fragment","cloneElement","as","anchorEl","getBoundingClientRect","TransitionPropsInner","_componentsProps$tool","_componentsProps$arro","timeout","shorter","propTypes","bool","isRequired","object","string","elementType","number","func","oneOf","sx","oneOfType","arrayOf","node"],"sources":["/data/messenger.client/node_modules/@mui/material/esm/Tooltip/Tooltip.js"],"sourcesContent":["import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"arrow\", \"children\", \"classes\", \"components\", \"componentsProps\", \"describeChild\", \"disableFocusListener\", \"disableHoverListener\", \"disableInteractive\", \"disableTouchListener\", \"enterDelay\", \"enterNextDelay\", \"enterTouchDelay\", \"followCursor\", \"id\", \"leaveDelay\", \"leaveTouchDelay\", \"onClose\", \"onOpen\", \"open\", \"placement\", \"PopperComponent\", \"PopperProps\", \"title\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, appendOwnerState } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport Popper from '../Popper';\nimport useEventCallback from '../utils/useEventCallback';\nimport useForkRef from '../utils/useForkRef';\nimport useId from '../utils/useId';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useControlled from '../utils/useControlled';\nimport tooltipClasses, { getTooltipUtilityClass } from './tooltipClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nfunction round(value) {\n  return Math.round(value * 1e5) / 1e5;\n}\n\nconst useUtilityClasses = ownerState => {\n  const {\n    classes,\n    disableInteractive,\n    arrow,\n    touch,\n    placement\n  } = ownerState;\n  const slots = {\n    popper: ['popper', !disableInteractive && 'popperInteractive', arrow && 'popperArrow'],\n    tooltip: ['tooltip', arrow && 'tooltipArrow', touch && 'touch', `tooltipPlacement${capitalize(placement.split('-')[0])}`],\n    arrow: ['arrow']\n  };\n  return composeClasses(slots, getTooltipUtilityClass, classes);\n};\n\nconst TooltipPopper = styled(Popper, {\n  name: 'MuiTooltip',\n  slot: 'Popper',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.popper, !ownerState.disableInteractive && styles.popperInteractive, ownerState.arrow && styles.popperArrow, !ownerState.open && styles.popperClose];\n  }\n})(({\n  theme,\n  ownerState,\n  open\n}) => _extends({\n  zIndex: (theme.vars || theme).zIndex.tooltip,\n  pointerEvents: 'none'\n}, !ownerState.disableInteractive && {\n  pointerEvents: 'auto'\n}, !open && {\n  pointerEvents: 'none'\n}, ownerState.arrow && {\n  [`&[data-popper-placement*=\"bottom\"] .${tooltipClasses.arrow}`]: {\n    top: 0,\n    marginTop: '-0.71em',\n    '&::before': {\n      transformOrigin: '0 100%'\n    }\n  },\n  [`&[data-popper-placement*=\"top\"] .${tooltipClasses.arrow}`]: {\n    bottom: 0,\n    marginBottom: '-0.71em',\n    '&::before': {\n      transformOrigin: '100% 0'\n    }\n  },\n  [`&[data-popper-placement*=\"right\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n    left: 0,\n    marginLeft: '-0.71em'\n  } : {\n    right: 0,\n    marginRight: '-0.71em'\n  }, {\n    height: '1em',\n    width: '0.71em',\n    '&::before': {\n      transformOrigin: '100% 100%'\n    }\n  }),\n  [`&[data-popper-placement*=\"left\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n    right: 0,\n    marginRight: '-0.71em'\n  } : {\n    left: 0,\n    marginLeft: '-0.71em'\n  }, {\n    height: '1em',\n    width: '0.71em',\n    '&::before': {\n      transformOrigin: '0 0'\n    }\n  })\n}));\nconst TooltipTooltip = styled('div', {\n  name: 'MuiTooltip',\n  slot: 'Tooltip',\n  overridesResolver: (props, styles) => {\n    const {\n      ownerState\n    } = props;\n    return [styles.tooltip, ownerState.touch && styles.touch, ownerState.arrow && styles.tooltipArrow, styles[`tooltipPlacement${capitalize(ownerState.placement.split('-')[0])}`]];\n  }\n})(({\n  theme,\n  ownerState\n}) => _extends({\n  backgroundColor: theme.vars ? theme.vars.palette.Tooltip.bg : alpha(theme.palette.grey[700], 0.92),\n  borderRadius: (theme.vars || theme).shape.borderRadius,\n  color: (theme.vars || theme).palette.common.white,\n  fontFamily: theme.typography.fontFamily,\n  padding: '4px 8px',\n  fontSize: theme.typography.pxToRem(11),\n  maxWidth: 300,\n  margin: 2,\n  wordWrap: 'break-word',\n  fontWeight: theme.typography.fontWeightMedium\n}, ownerState.arrow && {\n  position: 'relative',\n  margin: 0\n}, ownerState.touch && {\n  padding: '8px 16px',\n  fontSize: theme.typography.pxToRem(14),\n  lineHeight: `${round(16 / 14)}em`,\n  fontWeight: theme.typography.fontWeightRegular\n}, {\n  [`.${tooltipClasses.popper}[data-popper-placement*=\"left\"] &`]: _extends({\n    transformOrigin: 'right center'\n  }, !ownerState.isRtl ? _extends({\n    marginRight: '14px'\n  }, ownerState.touch && {\n    marginRight: '24px'\n  }) : _extends({\n    marginLeft: '14px'\n  }, ownerState.touch && {\n    marginLeft: '24px'\n  })),\n  [`.${tooltipClasses.popper}[data-popper-placement*=\"right\"] &`]: _extends({\n    transformOrigin: 'left center'\n  }, !ownerState.isRtl ? _extends({\n    marginLeft: '14px'\n  }, ownerState.touch && {\n    marginLeft: '24px'\n  }) : _extends({\n    marginRight: '14px'\n  }, ownerState.touch && {\n    marginRight: '24px'\n  })),\n  [`.${tooltipClasses.popper}[data-popper-placement*=\"top\"] &`]: _extends({\n    transformOrigin: 'center bottom',\n    marginBottom: '14px'\n  }, ownerState.touch && {\n    marginBottom: '24px'\n  }),\n  [`.${tooltipClasses.popper}[data-popper-placement*=\"bottom\"] &`]: _extends({\n    transformOrigin: 'center top',\n    marginTop: '14px'\n  }, ownerState.touch && {\n    marginTop: '24px'\n  })\n}));\nconst TooltipArrow = styled('span', {\n  name: 'MuiTooltip',\n  slot: 'Arrow',\n  overridesResolver: (props, styles) => styles.arrow\n})(({\n  theme\n}) => ({\n  overflow: 'hidden',\n  position: 'absolute',\n  width: '1em',\n  height: '0.71em'\n  /* = width / sqrt(2) = (length of the hypotenuse) */\n  ,\n  boxSizing: 'border-box',\n  color: theme.vars ? theme.vars.palette.Tooltip.bg : alpha(theme.palette.grey[700], 0.9),\n  '&::before': {\n    content: '\"\"',\n    margin: 'auto',\n    display: 'block',\n    width: '100%',\n    height: '100%',\n    backgroundColor: 'currentColor',\n    transform: 'rotate(45deg)'\n  }\n}));\nlet hystersisOpen = false;\nlet hystersisTimer = null;\nexport function testReset() {\n  hystersisOpen = false;\n  clearTimeout(hystersisTimer);\n}\n\nfunction composeEventHandler(handler, eventHandler) {\n  return event => {\n    if (eventHandler) {\n      eventHandler(event);\n    }\n\n    handler(event);\n  };\n} // TODO v6: Remove PopperComponent, PopperProps, TransitionComponent and TransitionProps.\n\n\nconst Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {\n  var _components$Popper, _ref, _components$Transitio, _components$Tooltip, _components$Arrow, _componentsProps$popp;\n\n  const props = useThemeProps({\n    props: inProps,\n    name: 'MuiTooltip'\n  });\n\n  const {\n    arrow = false,\n    children,\n    components = {},\n    componentsProps = {},\n    describeChild = false,\n    disableFocusListener = false,\n    disableHoverListener = false,\n    disableInteractive: disableInteractiveProp = false,\n    disableTouchListener = false,\n    enterDelay = 100,\n    enterNextDelay = 0,\n    enterTouchDelay = 700,\n    followCursor = false,\n    id: idProp,\n    leaveDelay = 0,\n    leaveTouchDelay = 1500,\n    onClose,\n    onOpen,\n    open: openProp,\n    placement = 'bottom',\n    PopperComponent: PopperComponentProp,\n    PopperProps = {},\n    title,\n    TransitionComponent: TransitionComponentProp = Grow,\n    TransitionProps\n  } = props,\n        other = _objectWithoutPropertiesLoose(props, _excluded);\n\n  const theme = useTheme();\n  const isRtl = theme.direction === 'rtl';\n  const [childNode, setChildNode] = React.useState();\n  const [arrowRef, setArrowRef] = React.useState(null);\n  const ignoreNonTouchEvents = React.useRef(false);\n  const disableInteractive = disableInteractiveProp || followCursor;\n  const closeTimer = React.useRef();\n  const enterTimer = React.useRef();\n  const leaveTimer = React.useRef();\n  const touchTimer = React.useRef();\n  const [openState, setOpenState] = useControlled({\n    controlled: openProp,\n    default: false,\n    name: 'Tooltip',\n    state: 'open'\n  });\n  let open = openState;\n\n  if (process.env.NODE_ENV !== 'production') {\n    // eslint-disable-next-line react-hooks/rules-of-hooks\n    const {\n      current: isControlled\n    } = React.useRef(openProp !== undefined); // eslint-disable-next-line react-hooks/rules-of-hooks\n\n    React.useEffect(() => {\n      if (childNode && childNode.disabled && !isControlled && title !== '' && childNode.tagName.toLowerCase() === 'button') {\n        console.error(['MUI: You are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', \"Tooltip needs to listen to the child element's events to display the title.\", '', 'Add a simple wrapper element, such as a `span`.'].join('\\n'));\n      }\n    }, [title, childNode, isControlled]);\n  }\n\n  const id = useId(idProp);\n  const prevUserSelect = React.useRef();\n  const stopTouchInteraction = React.useCallback(() => {\n    if (prevUserSelect.current !== undefined) {\n      document.body.style.WebkitUserSelect = prevUserSelect.current;\n      prevUserSelect.current = undefined;\n    }\n\n    clearTimeout(touchTimer.current);\n  }, []);\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(closeTimer.current);\n      clearTimeout(enterTimer.current);\n      clearTimeout(leaveTimer.current);\n      stopTouchInteraction();\n    };\n  }, [stopTouchInteraction]);\n\n  const handleOpen = event => {\n    clearTimeout(hystersisTimer);\n    hystersisOpen = true; // The mouseover event will trigger for every nested element in the tooltip.\n    // We can skip rerendering when the tooltip is already open.\n    // We are using the mouseover event instead of the mouseenter event to fix a hide/show issue.\n\n    setOpenState(true);\n\n    if (onOpen && !open) {\n      onOpen(event);\n    }\n  };\n\n  const handleClose = useEventCallback(\n  /**\n   * @param {React.SyntheticEvent | Event} event\n   */\n  event => {\n    clearTimeout(hystersisTimer);\n    hystersisTimer = setTimeout(() => {\n      hystersisOpen = false;\n    }, 800 + leaveDelay);\n    setOpenState(false);\n\n    if (onClose && open) {\n      onClose(event);\n    }\n\n    clearTimeout(closeTimer.current);\n    closeTimer.current = setTimeout(() => {\n      ignoreNonTouchEvents.current = false;\n    }, theme.transitions.duration.shortest);\n  });\n\n  const handleEnter = event => {\n    if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {\n      return;\n    } // Remove the title ahead of time.\n    // We don't want to wait for the next render commit.\n    // We would risk displaying two tooltips at the same time (native + this one).\n\n\n    if (childNode) {\n      childNode.removeAttribute('title');\n    }\n\n    clearTimeout(enterTimer.current);\n    clearTimeout(leaveTimer.current);\n\n    if (enterDelay || hystersisOpen && enterNextDelay) {\n      enterTimer.current = setTimeout(() => {\n        handleOpen(event);\n      }, hystersisOpen ? enterNextDelay : enterDelay);\n    } else {\n      handleOpen(event);\n    }\n  };\n\n  const handleLeave = event => {\n    clearTimeout(enterTimer.current);\n    clearTimeout(leaveTimer.current);\n    leaveTimer.current = setTimeout(() => {\n      handleClose(event);\n    }, leaveDelay);\n  };\n\n  const {\n    isFocusVisibleRef,\n    onBlur: handleBlurVisible,\n    onFocus: handleFocusVisible,\n    ref: focusVisibleRef\n  } = useIsFocusVisible(); // We don't necessarily care about the focusVisible state (which is safe to access via ref anyway).\n  // We just need to re-render the Tooltip if the focus-visible state changes.\n\n  const [, setChildIsFocusVisible] = React.useState(false);\n\n  const handleBlur = event => {\n    handleBlurVisible(event);\n\n    if (isFocusVisibleRef.current === false) {\n      setChildIsFocusVisible(false);\n      handleLeave(event);\n    }\n  };\n\n  const handleFocus = event => {\n    // Workaround for https://github.com/facebook/react/issues/7769\n    // The autoFocus of React might trigger the event before the componentDidMount.\n    // We need to account for this eventuality.\n    if (!childNode) {\n      setChildNode(event.currentTarget);\n    }\n\n    handleFocusVisible(event);\n\n    if (isFocusVisibleRef.current === true) {\n      setChildIsFocusVisible(true);\n      handleEnter(event);\n    }\n  };\n\n  const detectTouchStart = event => {\n    ignoreNonTouchEvents.current = true;\n    const childrenProps = children.props;\n\n    if (childrenProps.onTouchStart) {\n      childrenProps.onTouchStart(event);\n    }\n  };\n\n  const handleMouseOver = handleEnter;\n  const handleMouseLeave = handleLeave;\n\n  const handleTouchStart = event => {\n    detectTouchStart(event);\n    clearTimeout(leaveTimer.current);\n    clearTimeout(closeTimer.current);\n    stopTouchInteraction();\n    prevUserSelect.current = document.body.style.WebkitUserSelect; // Prevent iOS text selection on long-tap.\n\n    document.body.style.WebkitUserSelect = 'none';\n    touchTimer.current = setTimeout(() => {\n      document.body.style.WebkitUserSelect = prevUserSelect.current;\n      handleEnter(event);\n    }, enterTouchDelay);\n  };\n\n  const handleTouchEnd = event => {\n    if (children.props.onTouchEnd) {\n      children.props.onTouchEnd(event);\n    }\n\n    stopTouchInteraction();\n    clearTimeout(leaveTimer.current);\n    leaveTimer.current = setTimeout(() => {\n      handleClose(event);\n    }, leaveTouchDelay);\n  };\n\n  React.useEffect(() => {\n    if (!open) {\n      return undefined;\n    }\n    /**\n     * @param {KeyboardEvent} nativeEvent\n     */\n\n\n    function handleKeyDown(nativeEvent) {\n      // IE11, Edge (prior to using Bink?) use 'Esc'\n      if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n        handleClose(nativeEvent);\n      }\n    }\n\n    document.addEventListener('keydown', handleKeyDown);\n    return () => {\n      document.removeEventListener('keydown', handleKeyDown);\n    };\n  }, [handleClose, open]);\n  const handleRef = useForkRef(children.ref, focusVisibleRef, setChildNode, ref); // There is no point in displaying an empty tooltip.\n\n  if (typeof title !== 'number' && !title) {\n    open = false;\n  }\n\n  const positionRef = React.useRef({\n    x: 0,\n    y: 0\n  });\n  const popperRef = React.useRef();\n\n  const handleMouseMove = event => {\n    const childrenProps = children.props;\n\n    if (childrenProps.onMouseMove) {\n      childrenProps.onMouseMove(event);\n    }\n\n    positionRef.current = {\n      x: event.clientX,\n      y: event.clientY\n    };\n\n    if (popperRef.current) {\n      popperRef.current.update();\n    }\n  };\n\n  const nameOrDescProps = {};\n  const titleIsString = typeof title === 'string';\n\n  if (describeChild) {\n    nameOrDescProps.title = !open && titleIsString && !disableHoverListener ? title : null;\n    nameOrDescProps['aria-describedby'] = open ? id : null;\n  } else {\n    nameOrDescProps['aria-label'] = titleIsString ? title : null;\n    nameOrDescProps['aria-labelledby'] = open && !titleIsString ? id : null;\n  }\n\n  const childrenProps = _extends({}, nameOrDescProps, other, children.props, {\n    className: clsx(other.className, children.props.className),\n    onTouchStart: detectTouchStart,\n    ref: handleRef\n  }, followCursor ? {\n    onMouseMove: handleMouseMove\n  } : {});\n\n  if (process.env.NODE_ENV !== 'production') {\n    childrenProps['data-mui-internal-clone-element'] = true; // eslint-disable-next-line react-hooks/rules-of-hooks\n\n    React.useEffect(() => {\n      if (childNode && !childNode.getAttribute('data-mui-internal-clone-element')) {\n        console.error(['MUI: The `children` component of the Tooltip is not forwarding its props correctly.', 'Please make sure that props are spread on the same element that the ref is applied to.'].join('\\n'));\n      }\n    }, [childNode]);\n  }\n\n  const interactiveWrapperListeners = {};\n\n  if (!disableTouchListener) {\n    childrenProps.onTouchStart = handleTouchStart;\n    childrenProps.onTouchEnd = handleTouchEnd;\n  }\n\n  if (!disableHoverListener) {\n    childrenProps.onMouseOver = composeEventHandler(handleMouseOver, childrenProps.onMouseOver);\n    childrenProps.onMouseLeave = composeEventHandler(handleMouseLeave, childrenProps.onMouseLeave);\n\n    if (!disableInteractive) {\n      interactiveWrapperListeners.onMouseOver = handleMouseOver;\n      interactiveWrapperListeners.onMouseLeave = handleMouseLeave;\n    }\n  }\n\n  if (!disableFocusListener) {\n    childrenProps.onFocus = composeEventHandler(handleFocus, childrenProps.onFocus);\n    childrenProps.onBlur = composeEventHandler(handleBlur, childrenProps.onBlur);\n\n    if (!disableInteractive) {\n      interactiveWrapperListeners.onFocus = handleFocus;\n      interactiveWrapperListeners.onBlur = handleBlur;\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (children.props.title) {\n      console.error(['MUI: You have provided a `title` prop to the child of <Tooltip />.', `Remove this title prop \\`${children.props.title}\\` or the Tooltip component.`].join('\\n'));\n    }\n  }\n\n  const popperOptions = React.useMemo(() => {\n    var _PopperProps$popperOp;\n\n    let tooltipModifiers = [{\n      name: 'arrow',\n      enabled: Boolean(arrowRef),\n      options: {\n        element: arrowRef,\n        padding: 4\n      }\n    }];\n\n    if ((_PopperProps$popperOp = PopperProps.popperOptions) != null && _PopperProps$popperOp.modifiers) {\n      tooltipModifiers = tooltipModifiers.concat(PopperProps.popperOptions.modifiers);\n    }\n\n    return _extends({}, PopperProps.popperOptions, {\n      modifiers: tooltipModifiers\n    });\n  }, [arrowRef, PopperProps]);\n\n  const ownerState = _extends({}, props, {\n    isRtl,\n    arrow,\n    disableInteractive,\n    placement,\n    PopperComponentProp,\n    touch: ignoreNonTouchEvents.current\n  });\n\n  const classes = useUtilityClasses(ownerState);\n  const PopperComponent = (_components$Popper = components.Popper) != null ? _components$Popper : TooltipPopper;\n  const TransitionComponent = (_ref = (_components$Transitio = components.Transition) != null ? _components$Transitio : TransitionComponentProp) != null ? _ref : Grow;\n  const TooltipComponent = (_components$Tooltip = components.Tooltip) != null ? _components$Tooltip : TooltipTooltip;\n  const ArrowComponent = (_components$Arrow = components.Arrow) != null ? _components$Arrow : TooltipArrow;\n  const popperProps = appendOwnerState(PopperComponent, _extends({}, PopperProps, componentsProps.popper), ownerState);\n  const transitionProps = appendOwnerState(TransitionComponent, _extends({}, TransitionProps, componentsProps.transition), ownerState);\n  const tooltipProps = appendOwnerState(TooltipComponent, _extends({}, componentsProps.tooltip), ownerState);\n  const tooltipArrowProps = appendOwnerState(ArrowComponent, _extends({}, componentsProps.arrow), ownerState);\n  return /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/React.cloneElement(children, childrenProps), /*#__PURE__*/_jsx(PopperComponent, _extends({\n      as: PopperComponentProp != null ? PopperComponentProp : Popper,\n      placement: placement,\n      anchorEl: followCursor ? {\n        getBoundingClientRect: () => ({\n          top: positionRef.current.y,\n          left: positionRef.current.x,\n          right: positionRef.current.x,\n          bottom: positionRef.current.y,\n          width: 0,\n          height: 0\n        })\n      } : childNode,\n      popperRef: popperRef,\n      open: childNode ? open : false,\n      id: id,\n      transition: true\n    }, interactiveWrapperListeners, popperProps, {\n      className: clsx(classes.popper, PopperProps == null ? void 0 : PopperProps.className, (_componentsProps$popp = componentsProps.popper) == null ? void 0 : _componentsProps$popp.className),\n      popperOptions: popperOptions,\n      children: ({\n        TransitionProps: TransitionPropsInner\n      }) => {\n        var _componentsProps$tool, _componentsProps$arro;\n\n        return /*#__PURE__*/_jsx(TransitionComponent, _extends({\n          timeout: theme.transitions.duration.shorter\n        }, TransitionPropsInner, transitionProps, {\n          children: /*#__PURE__*/_jsxs(TooltipComponent, _extends({}, tooltipProps, {\n            className: clsx(classes.tooltip, (_componentsProps$tool = componentsProps.tooltip) == null ? void 0 : _componentsProps$tool.className),\n            children: [title, arrow ? /*#__PURE__*/_jsx(ArrowComponent, _extends({}, tooltipArrowProps, {\n              className: clsx(classes.arrow, (_componentsProps$arro = componentsProps.arrow) == null ? void 0 : _componentsProps$arro.className),\n              ref: setArrowRef\n            })) : null]\n          }))\n        }));\n      }\n    }))]\n  });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tooltip.propTypes\n/* remove-proptypes */\n= {\n  // ----------------------------- Warning --------------------------------\n  // | These PropTypes are generated from the TypeScript type definitions |\n  // |     To update them edit the d.ts file and run \"yarn proptypes\"     |\n  // ----------------------------------------------------------------------\n\n  /**\n   * If `true`, adds an arrow to the tooltip.\n   * @default false\n   */\n  arrow: PropTypes.bool,\n\n  /**\n   * Tooltip reference element.\n   */\n  children: elementAcceptingRef.isRequired,\n\n  /**\n   * Override or extend the styles applied to the component.\n   */\n  classes: PropTypes.object,\n\n  /**\n   * @ignore\n   */\n  className: PropTypes.string,\n\n  /**\n   * The components used for each slot inside the Tooltip.\n   * Either a string to use a HTML element or a component.\n   * @default {}\n   */\n  components: PropTypes.shape({\n    Arrow: PropTypes.elementType,\n    Popper: PropTypes.elementType,\n    Tooltip: PropTypes.elementType,\n    Transition: PropTypes.elementType\n  }),\n\n  /**\n   * The props used for each slot inside the Tooltip.\n   * Note that `componentsProps.popper` prop values win over `PopperProps`\n   * and `componentsProps.transition` prop values win over `TransitionProps` if both are applied.\n   * @default {}\n   */\n  componentsProps: PropTypes.shape({\n    arrow: PropTypes.object,\n    popper: PropTypes.object,\n    tooltip: PropTypes.object,\n    transition: PropTypes.object\n  }),\n\n  /**\n   * Set to `true` if the `title` acts as an accessible description.\n   * By default the `title` acts as an accessible label for the child.\n   * @default false\n   */\n  describeChild: PropTypes.bool,\n\n  /**\n   * Do not respond to focus-visible events.\n   * @default false\n   */\n  disableFocusListener: PropTypes.bool,\n\n  /**\n   * Do not respond to hover events.\n   * @default false\n   */\n  disableHoverListener: PropTypes.bool,\n\n  /**\n   * Makes a tooltip not interactive, i.e. it will close when the user\n   * hovers over the tooltip before the `leaveDelay` is expired.\n   * @default false\n   */\n  disableInteractive: PropTypes.bool,\n\n  /**\n   * Do not respond to long press touch events.\n   * @default false\n   */\n  disableTouchListener: PropTypes.bool,\n\n  /**\n   * The number of milliseconds to wait before showing the tooltip.\n   * This prop won't impact the enter touch delay (`enterTouchDelay`).\n   * @default 100\n   */\n  enterDelay: PropTypes.number,\n\n  /**\n   * The number of milliseconds to wait before showing the tooltip when one was already recently opened.\n   * @default 0\n   */\n  enterNextDelay: PropTypes.number,\n\n  /**\n   * The number of milliseconds a user must touch the element before showing the tooltip.\n   * @default 700\n   */\n  enterTouchDelay: PropTypes.number,\n\n  /**\n   * If `true`, the tooltip follow the cursor over the wrapped element.\n   * @default false\n   */\n  followCursor: PropTypes.bool,\n\n  /**\n   * This prop is used to help implement the accessibility logic.\n   * If you don't provide this prop. It falls back to a randomly generated id.\n   */\n  id: PropTypes.string,\n\n  /**\n   * The number of milliseconds to wait before hiding the tooltip.\n   * This prop won't impact the leave touch delay (`leaveTouchDelay`).\n   * @default 0\n   */\n  leaveDelay: PropTypes.number,\n\n  /**\n   * The number of milliseconds after the user stops touching an element before hiding the tooltip.\n   * @default 1500\n   */\n  leaveTouchDelay: PropTypes.number,\n\n  /**\n   * Callback fired when the component requests to be closed.\n   *\n   * @param {React.SyntheticEvent} event The event source of the callback.\n   */\n  onClose: PropTypes.func,\n\n  /**\n   * Callback fired when the component requests to be open.\n   *\n   * @param {React.SyntheticEvent} event The event source of the callback.\n   */\n  onOpen: PropTypes.func,\n\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n\n  /**\n   * Tooltip placement.\n   * @default 'bottom'\n   */\n  placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n\n  /**\n   * The component used for the popper.\n   * @default Popper\n   */\n  PopperComponent: PropTypes.elementType,\n\n  /**\n   * Props applied to the [`Popper`](/material-ui/api/popper/) element.\n   * @default {}\n   */\n  PopperProps: PropTypes.object,\n\n  /**\n   * The system prop that allows defining system overrides as well as additional CSS styles.\n   */\n  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n  /**\n   * Tooltip title. Zero-length titles string, undefined, null and false are never displayed.\n   */\n  title: PropTypes.node,\n\n  /**\n   * The component used for the transition.\n   * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n   * @default Grow\n   */\n  TransitionComponent: PropTypes.elementType,\n\n  /**\n   * Props applied to the transition element.\n   * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n   */\n  TransitionProps: PropTypes.object\n} : void 0;\nexport default Tooltip;"],"mappings":"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"},"metadata":{},"sourceType":"module"}